/**
 * @file ngineclient.h
 * @author Suk Robert Koh (srkoh87z@gmail.com)
 *
 * @brief Client-side NGine class for application's interaction with NGine
 */

#ifndef NGINECLIENT_H_
#define NGINECLIENT_H_

#include "ngclient.h"
#include "ngtcpclient.h"
#include "../common/utility/nglogger.h"
#include "../common/ngproperties.h"
#include "../common/ngtypes.h"

/**
 * @class	NGineClient	Client-side NGine class for application's interaction with NGine
 */
class NGineClient
{
public:
	static void init(const char *address, int port, int property);

	static int getQueueSize();
	static NGMessage *getFirstMessage();

	static void sendToServer(BYTE type, const char *message);

private:
	NGineClient();
	virtual ~NGineClient();

	static NGClient *client;							/** Client instance */
};

#endif /* NGINE_H_ */
